<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        function serilizeUrl(url) {
            var urlObject = {}; // 定义一个对象用来保存最后的值
            if (/\?/.test(url)) {
                // 正则test（）方法只需要待测试字符串中包含了要测试的字符串就是ture
                // /\?/.test(url):url中是否含有? 返回false或者true
                var urlString = url.substring(url.indexOf("?") + 1);
                // 这里调用了字符串的两个方法 indexOf()和substring()
                // indexOf()返回字符串中？的索引下标 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置
                // substring()字符串截取方法 substring(strat,end) 方法用于提取字符串中介于两个指定下标之间的字符 strat起始位置 end结束位置如果没有设置就一直截取到字符串末尾
                // url.substring(url.indexOf("?")+1)截取从?后面所有字符
                var urlArray = urlString.split("&");
                // 字符串的split()方法 字符串转数组,数组每一项都类似a=1的字符串
                for (var i = 0; i < urlArray.length; i++) {
                    // 遍历每一项
                    var urlitem = urlArray[i];
                    var item = urlitem.split("=");
                    // 对数组每一项进行再次分割
                    urlObject[item[0]] = item[1];
                    // 添加到对象中
                }
                return urlObject;
            }
            return null;
        }
        var url = "http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e"
        console.log(serilizeUrl(url))

    </script>
</body>

</html>